package com.ll.arraydemo;

import java.util.Arrays;
import java.util.List;

/**
 * @author 刘龙
 * @version 1.0
 */
public class ArrayMethod02 {
    public static void main(String[] args) {
        Integer[] arr = {1, 6, 8, 12, 50};

        // binarySearch 通过二分搜索法进行查找,要求必须排序好
        // 1.使用 binarySearch 二叉查找
        // 2.要求该数组是有序的
        // 3.如果数组中不存在该元素,返回 return -(low + 1);  // key not found.
        int i = Arrays.binarySearch(arr, 50);

        // 4
        System.out.println(i);

        // copyOf 数组元素的复制
        // 从 arr 数组中, 拷贝 arr.length 到 newArr 数组中
        // 如果要拷贝的长度大于 arr.length, 则空缺的位置使用 null 填充
        // 如皋要拷贝的长度 < 0, 会执行 NegativeArraySizeException 异常
        Integer[] newArr = Arrays.copyOf(arr, arr.length);
        // [1, 6, 8, 12, 50]
        System.out.println(Arrays.toString(newArr));

        // 数组填充
        Integer[] num = {9, 3, 2};

        //使用99填充num数组,元素替换
        Arrays.fill(num, 99);
        // [99, 99, 99]
        System.out.println(Arrays.toString(num));

        // equals 比较两个数组中的元素是否一致
        Integer[] arr1 = {1, 6, 8, 12, 50};
        Integer[] arr2 = {1, 6, 8, 12, 50};
        boolean flag = Arrays.equals(arr1, arr2);
        // true
        System.out.println(flag);

        // asList 将数组转换成 list
        Integer[] arr3 = {1, 6, 8, 12, 50};
        List<Integer> integers = Arrays.asList(arr3);
        // [1, 6, 8, 12, 50]
        System.out.println(integers);
        System.out.println(integers.getClass());

    }
}
